import { defineStore } from 'pinia'
import { ref } from 'vue'

export interface AudioItem {
  id: number
  title: string
  src: string
  duration: string
  era?: string
  description?: string
  location?: string
}

export const useAudioStore = defineStore(
  'audio',
  () => {
    // 音频列表数据
    const audioList = ref<AudioItem[]>([
      {
        id: 1,
        title: '青铜器展品',
        src: '',
        duration: '02:45',
        era: '战国时期',
        description:
          '这是一件精美的青铜器，制作于战国时期，展现了当时高超的青铜铸造工艺。器身纹饰精美，具有很高的历史和艺术价值。',
        location: '一楼东厅',
      },
      {
        id: 2,
        title: '陶瓷花瓶',
        src: '',
        duration: '01:30',
        era: '明朝',
        description:
          '这是一件明朝时期的陶瓷花瓶，采用了当时流行的青花工艺，瓶身绘有精美的山水画，展现了明朝陶瓷艺术的精湛技艺。',
        location: '一楼西厅',
      },
      {
        id: 3,
        title: '古代书法作品',
        src: '',
        duration: '03:15',
        era: '唐朝',
        description:
          '这是一幅唐朝时期的书法作品，笔法刚劲有力，展现了唐朝书法艺术的独特风格和艺术魅力。',
        location: '二楼书画厅',
      },
    ])

    // 添加音频
    function addAudio(audio: AudioItem) {
      audioList.value.push(audio)
    }

    // 更新音频
    function updateAudio(index: number, audio: Partial<AudioItem>) {
      if (index >= 0 && index < audioList.value.length) {
        audioList.value[index] = {
          ...audioList.value[index],
          ...audio,
        }
      }
    }

    // 删除音频
    function deleteAudio(index: number) {
      if (index >= 0 && index < audioList.value.length) {
        audioList.value.splice(index, 1)
        return true
      }
      return false
    }

    return {
      audioList,
      addAudio,
      updateAudio,
      deleteAudio,
    }
  },
  {
    persist: true, // 使用持久化存储
  },
)